使用開發者工具看圖片時,發現下方有個空隙,這是為什麼?
因為預設img
為行內元素,和示意圖文字一樣留出空間給y,g英文字母。
去除空隙的辦法
codepen參考範例:https://codepen.io/rochelwang1205/pen/ExGwxbM
display:block
將 <img>
元素的 CSS display
屬性設定為 block
,將其轉換為區塊元素,不再保留行內元素的預設空間。
vertical-align: top/bottom/text-top/text-bottom/middle 改變與父元素的對齊基準
設定 <img>
元素的 vertical-align
屬性,可以將圖片對齊到文本的頂部、底部、或其他位置。
在父元素上設定font-size: 0px
如果不希望影響 <img>
元素的樣式,您可以在包含該 <img>
的父元素上設定 font-size
為 0px
,這樣可以消除預設行內元素的垂直空間,同時保持圖片的可見性。
**span
行內標籤去除空隙的效果**
codepen參考範例:https://codepen.io/rochelwang1205/pen/poqWoQO
使用 display: block
將 <span>
轉為區塊元素,最明顯地去除了所有空隙,但可能會影響頁面佈局;使用 vertical-align: top;
則保留了行內排列,但只去除了頂部空隙;使用 font-size: 0px;
則可以達到全面消除空隙的效果,但需要特別處理字體大小,否則會不可見。
使用 display: block
:會佔據一整行的寬度,並在上下分別有一個空隙,使 <span>
元素獨立成為一個區塊,無法與相鄰元素共享行內空間。
使用 vertical-align: top
:將使 <span>
元素在保持行內排列的同時,去除了頂部的空隙,但仍保留了底部空隙。
使用父元素設定 font-size: 0px
: 如果您在包含 <span>
元素的父元素上設定了 font-size: 0px
,則父元素的字體大小將為零,這將導致所有內容(包括子 <span>
元素)變得不可見。但是,可以把<span>
單獨設置字體大小,使其可見。
vertical-align: top;
和使用父元素設定 font-size: 0px
屬性的兩種方法都還會保留一些空隙,原因如下:
vertical-align
屬性設定為 top
時,它確實會將元素的頂部與相鄰元素的頂部對齊,但這僅影響了垂直對齊,並不影響行內元素的行高。這意味著元素的底部仍然會受到行內文本的行高限制,因此保留了一些空隙;
設定 font-size: 0px;
時,父元素的字體大小確實變為零,但這只是影響了元素的文字內容的大小,而不是元素本身的高度,行內元素的高度仍然受到行高的影響,所以保留了一些空隙。
要全面去除這些方法中的空隙,需要進一步調整元素的樣式。例如,將行高設定為零或做其他樣式調整。
可以在範例程式碼中看到不同效果,根據自己的需求(不見得是為了消除空隙)可以選擇使用其中一種方法(但vertical-align: top
和父元素設定 font-size: 0px
加上line-height:0px
效果看起來都不是很好也不好調整)。
參考資料: